home *** CD-ROM | disk | FTP | other *** search
/ Nebula 1 / Nebula One.iso / Utilities / Workspace / PasteboardInspector / Source / PSView.m < prev   
Text File  |  1995-06-12  |  1KB  |  76 lines

  1.  
  2.  
  3.  
  4. #import    <appkit/NXImage.h>
  5. #import <appkit/NXBitmapImageRep.h>
  6. #import <appkit/NXEPSImageRep.h>
  7. #import <appkit/ScrollView.h>
  8. #import <appkit/Matrix.h>
  9. #import <dpsclient/psops.h>
  10.  
  11. #import "PSView.h"
  12.  
  13. @implementation PSView
  14.  
  15. - initFrame:(NXRect *)r
  16. {
  17.     self = [super initFrame:r];
  18.     displayType = 0;
  19.     sizedirty = YES;
  20.     return self;
  21. }
  22. - getImage
  23. {
  24.     return theImage;
  25. }
  26.  
  27. - setImage: image
  28. {
  29.     if(theImage != nil)
  30.         [theImage free];
  31.     theImage = image;
  32.     [theImage setDataRetained:YES];
  33.     [theImage setScalable:YES];
  34.     [theImage getSize:&s];
  35.     return self;
  36. }
  37.  
  38. - drawSelf:(const NXRect *)aRect :(int)c
  39. {
  40.     NXCoord width, height;
  41.     NXPoint p;
  42.     PSsetgray(NX_LTGRAY);
  43.     NXRectFill(aRect);
  44.     
  45.     if(displayType == 0)
  46.     {
  47.         width = ((s.width < bounds.size.width) ? bounds.size.width : s.width);
  48.         height = ((s.height < bounds.size.height) ? bounds.size.height : s.height);
  49.         if(sizedirty)
  50.         {
  51.             [theImage setSize:&s];
  52.             sizedirty = NO;
  53.         }
  54.         p.x = width / 2 - s.width / 2;
  55.         p.y = height / 2 - s.height / 2;
  56.         [theImage composite: NX_COPY toPoint: &p];
  57.     }
  58.     else
  59.     {
  60.         [theImage setSize:&bounds.size];
  61.         [theImage composite: NX_COPY toPoint: &bounds.origin];
  62.     }
  63.     
  64.     return self;
  65. }
  66.  
  67. - setGraphicDisplayType: sender
  68. {
  69.     displayType = [sender selectedTag];
  70.     sizedirty = YES;
  71.     [self display];
  72.     return self;
  73. }
  74.  
  75. @end
  76.